package com.azt.novel.book.config;



import com.azt.novel.config.intercepter.TokenParseInterceptor;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Spring Web Mvc 相关配置不要加 @EnableWebMvc 注解，否则会导致 jackson 的全局配置失效。因为 @EnableWebMvc 注解会导致 WebMvcAutoConfiguration 自动配置失效
 **/
@Configuration
@RequiredArgsConstructor
public class WebConfig implements WebMvcConfigurer {

    private final TokenParseInterceptor tokenParseInterceptor;

    /**
     *         order(n)表示优先级，
     *         数字越小优先级越高。
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // Token 解析拦截器
        registry.addInterceptor(tokenParseInterceptor)
                // 拦截小说内容查询接口，需要解析 token 以判断该用户是否有权阅读该章节（付费章节是否已购买）
                .addPathPatterns("/api/front/book/content/*");
//                .addPathPatterns("/api/front/*/*/*")
//                .addPathPatterns("/api/front/*/*")
//                .addPathPatterns("/api/front/*")
//                .addPathPatterns("/api/author/*")
//                .order(3);
    }
}
